Over recent years, a large number of sensors are connected to a communication network (hereinafter, described as a “network”). These sensors collect various pieces of information (events) such as power consumption, traffic information, temperatures, stock price fluctuations, location information, or the like.
Further, recently, a large number of applications are connected to a network. These applications accept operations from operators or external apparatuses via the network.
On the basis of such backgrounds, a technology referred to as M2M (Machine to Machine) has attracted attention. According to the M2M technology, an application receives, via a network, events collected by sensors. The application determines a situation or executes processing on the basis of the received events. In this manner, according to the M2M technology, the application is autonomously controlled on the basis of the events collected by the sensors, without human control.
With an increase in the number of sensors connected to a communication network, a large increase in the size of M2M services is predicted. Therefore, an event-processing system capable of handling large-scale services is needed.
PTL 1 discloses one example of an event-processing system. FIG. 28 is a diagram illustrating an outline of the event-processing system disclosed by PTL 1.
As illustrated in FIG. 28, the event-processing system disclosed by PTL 1 includes an application (AP) 5000, a processing server 4000, a context-dependent allocator 3000, a device 2000, an event-processing distribution control apparatus 6000, and a context-independent allocator 7000.
The processing server 4000 receives events from the context-dependent allocator 3000, processes the received events, and notifies the application 5000 of the processing result of the events. The context-dependent allocator 3000 assigns events generated by the device 2000 to the processing server 4000. The device 2000 generates events.
The event-processing distribution control apparatus 6000 executes the following processing on the basis of a request from the application 5000. That is, the event-processing distribution control apparatus 6000 sets, for the processing server 4000, a processing rule describing processing on the basis of contents (contexts) of events. The event-processing distribution control apparatus 6000 further sets an allocation rule for the context-dependent allocator 3000 so that events necessary to execute the processing rule are appropriately distributed to the processing server 4000.
For the context-dependent allocator 3000, an allocation rule is set in advance by the event-processing distribution control apparatus 6000. The context-dependent allocator 3000 receives events. The context-dependent allocator 3000 determines, on the basis of contents (contexts) of the received events and the allocation rule, the processing server 4000 to which the received events are transferred among a plurality of processing servers 4000.
For the processing server 4000, the processing rule is set in advance by the event-processing distribution control apparatus 6000. The processing server 4000 processes the transferred events on the basis of the processing rule and transmits the event processing result to the application 5000.
The context-independent allocator 7000 disclosed by PTL 1 is configured to realize load distribution among a plurality of context-dependent allocators 3000. The context-independent allocator 7000 receives events from the device 2000 and randomly transfers the received events to the context-dependent allocator 3000. In this manner, the context-independent allocator 7000 mediates between the device 2000 and the context-dependent allocator 3000, and thereby the number of events received by the context-dependent allocator 3000 is leveled.